1. Field of the Invention
This invention relates to design tools for automating design process. The invention is more particularly related to the sharing of specific knowledge between a suite of design tools utilized in an automated design process. The invention is still further related to a process of performing a design where instructions, stored in a master plan, are shared between different design tools and instruct the design tools on how to apply themselves to specific design situations.
2. Discussion of the Background
The development of integrated circuits requires many specialized software programs (tools) that perform certain analyses and data transformations. These analyses and data transformations provide the vehicle by which the designer develops, and proofs formalized descriptions of the integrated circuits design. These formalized descriptions can be used to manufacture the integrated circuits according to the design. The collection of these tools so that they enable a coherent design process is known as a design flow.
The present inventors have realized that traditional design flows manage their data flows without regard for the information that is contained within the design data. In this respect, they treat the design data as a homogeneous and ignore the many special cases presented by the content of the descriptions. As a result, the individual tools must each be encoded with these special cases leading to much increased complexity.
Accordingly, it is an object of the present invention to provide a master plan, shared by plural design tools, and having instructions on how to apply each of the design tools to specific situations of the design.
It is another object of the present invention to provide a method of design that incorporates specific knowledge about situations of a design to plural design tools, each design tool performing a different part or function of the overall design.
These and other objects are accomplished via a design flow, having a collection of tools, each tool configured to produce at least one part or function of an overall design, and a master plan containing instructions readable by at least two of the tools. The instructions contain situation specific knowledge on how to apply the tools to perform a corresponding at least one part or function of the overall design.
The method includes the steps of executing a collection of design tools for performing the design; retrieving instructions from a master plan, the master plan instructions specifying at least one of a formal design description and an implementation description for at least one component of the device; and utilizing at least one of the instructions by at least two respective design tools of the collection of design tools to determine how to apply each respective design tool to perform at least one part of a the design.
In addition to controlling when to apply a given design tool in a design flow, the present invention also includes the ability to define how to apply a given design tool to a specific design situation.
Many of the programming instructions in existing electronic design automation programs involve the transformation of data from one specific format into another specific format in order to pass the design data from program to program. In addition, these programs spend a great deal of their time reconstructing information internally and then simply ignoring that information when it comes time to generate output for the next tool in the flow. Because these programs do not take advantage of the information inherent in the design data they also spend a great deal of time performing operations again and again inside each tool leading to much reduced performance and an increased chance of error.